package com.hopu.mapper;

import com.hopu.dto.MyHouseDto;
import com.hopu.entity.MyHouse;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

/**
 * @Package: com.hopu.mapper
 * @ClassName: MyHouseMapper
 * @Author: xiaoBao
 * @CreateTime: 2020/11/5 1:30
 * @Description: 【房屋资料信息功能持久层】
 */
public interface MyHouseMapper {
    /**
     * findAllHouseInfo 【查询所有房屋资料信息并分页显示】
     * @return 将查询到的房屋资料信息返回给服务层进行分页操作。
     */
    @Select("SELECT hid,mysort.`sname`,myarea.`aname`,haddress,hfh,hhx,hmj,hcx,hmoney,hflag FROM myhouse,mysort,myarea WHERE myhouse.`sid` = mysort.`sid` AND myhouse.`aid` = myarea.`aid` AND myhouse.`hflag` = '0'")
    List<MyHouseDto> findAllHouseInfo();


    /**
     * findHouseInfoById 【根据房屋Id查询一条房屋信息（查看房屋详细信息）】
     * @param myHouse 房屋Id；
     * @return 将查询到的房屋详细信息返回给服务层进行逻辑处理。
     */
    @Select("SELECT hid,mysort.`sname`,myarea.`aname`,haddress,hfh,hhx,hmj,hcx,hmoney,hflag,hwf,hdx,hsf,hmq,dkd,skd,mkd,hjp,hremark FROM myhouse,mysort,myarea WHERE myhouse.`sid` = mysort.`sid` AND myhouse.`aid` = myarea.`aid` AND myhouse.`hflag` = '0' AND myhouse.`hid` = #{hid}")
    MyHouseDto findHouseInfoById(MyHouse myHouse);


    /**
     * addHouse 【添加一条房屋资料信息】
     * @param myHouse 添加房屋的相关信息；
     * @return 将执行添加操作的影响行数返回给服务层进行逻辑处理。
     */
    @Insert("INSERT INTO myhouse(sid,aid,haddress,hfh,hhx,hmj,hcx,hmoney,hwf,hdx,hsf,hmq,dkd,skd,mkd,hjp,hremark,hflag)VALUES(#{sid},#{aid},#{haddress},#{hfh},#{hhx},#{hmj},#{hcx},#{hmoney},#{hwf},#{hdx},#{hsf},#{hmq},#{dkd},#{skd},#{mkd},#{hjp},#{hremark},0)")
    Integer addHouse(MyHouse myHouse);


    /**
     * uppHouseById 【根据Id修改一条房屋信息】
     * @param myHouse 房屋Id；
     * @return 将执行结果返回给服务层进行逻辑处理。
     */
    @Update("UPDATE myhouse SET sid = #{sid},aid = #{aid},haddress = #{haddress},hfh = #{hfh},hhx = #{hhx},hmj = #{hmj},hcx= #{hcx},hmoney = #{hmoney},hwf = #{hwf},hdx = #{hdx},hsf = #{hsf},hmq = #{hmq},dkd = #{dkd},skd = #{skd},mkd = #{mkd},hjp = #{hjp},hremark = #{hremark} WHERE hid = #{hid}")
    Integer uppHouseById(MyHouse myHouse);
}
